javascript - postcss-loader在webpack2的使用.
問題描述
一. 按照官網的做法,配置postcss.config.js
module.exports = { plugins: [require(’autoprefixer’) ] }
二. 然后在webpack.config.js里面
{ test:/.css$/, use: [ { loader: ’style-loader’ }, { loader: ’css-loader’,options: { importLoaders: 1 } }, { loader: ’postcss-loader’ } ] }
三. 然后運行webpack 會出現報錯
ERROR in ./~/css-loader?{'importLoaders':1}!./~/.2.0.6@postcss-loader/lib!./app/common.cssModule build failed: Error: Cannot find module ’caniuse-db/data.json’ at Function.Module._resolveFilename (module.js:469:15) at Function.Module._load (module.js:417:25) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object.<anonymous> (C:UsersjjDesktopwebpacknode_modules.1.7.7@browserslistindex.js:5:46) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object.<anonymous> (C:UsersjjDesktopwebpacknode_modules.6.7.7@autoprefixerlibautoprefixer.js:5:18) at Object.<anonymous> (C:UsersjjDesktopwebpacknode_modules.6.7.7@autoprefixerlibautoprefixer.js:92:4) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object.<anonymous> (C:UsersjjDesktopwebpackpostcss.config.js:3:5) at Module._compile (module.js:570:32) at requireFromString (C:UsersjjDesktopwebpacknode_modules.1.2.1@require-from-stringindex.js:27:4) at C:UsersjjDesktopwebpacknode_modules.2.1.3@cosmiconfiglibloadJs.js:11:15 @ ./app/common.css 4:14-136 @ ./app/index.js
四. 清空postcss.config.js, 修改webpack.config.js,再次失敗 報錯和上一步一樣.
{ loader: ’postcss-loader’, options: { plugins: (loader) => [require(’autoprefixer’)() ] } }
五. 按照網上找到的方法
new webpack.LoaderOptionsPlugin({ options: {postcss: function() { return [require(’autoprefixer’)];} }}),根據網上做法npm i webpack-loader-options-merge --save-dev然后在webpack.config.js加入var loaderOptionsMerge = require(’webpack-loader-options-merge’);loaderOptionsMerge(webpackConfigObject);webpack(webpackConfigObject);我不明白new webpack.LoaderOptionsPlugin這里為什么這樣寫而且也會報錯loaderOptionsMerge(webpackConfigObject); ^ReferenceError: webpackConfigObject is not defined
六.去掉postcss的部分則沒有任何問題,正常運行.所有問題應該就出在這里了
七.真感覺搞不定了.附上package.json.webpack不僅全局安裝了,也--save-dev了.
{ 'name': 'webpack', 'version': '1.0.0', 'description': '', 'main': 'webpack.config.js', 'scripts': { 'test': 'echo 'Error: no test specified' && exit 1', 'bulid': 'webpack', 'start': 'webpack-dev-server --env development', 'lint': 'eslint app/ webpack.*.js --cache' }, 'author': '', 'license': 'ISC', 'devDependencies': { 'autoprefixer': '^7.1.1', 'css-loader': '^0.28.4', 'eslint': '^4.0.0', 'eslint-loader': '^1.8.0', 'html-webpack-plugin': '^2.28.0', 'less': '^2.7.2', 'less-loader': '^4.0.4', 'postcss': '^6.0.2', 'postcss-loader': '^2.0.6', 'style-loader': '^0.18.2', 'webpack': '^2.6.1', 'webpack-dev-server': '^2.4.5', 'webpack-loader-options-merge': '0.0.3' }}
問題解答
回答1:我也不知道具體的原因所在,就貼上我的配置吧……
post.config.js
module.exports = { plugins: [ require(’autoprefixer’)({browsers:’ios >= 8’}) ]}
webpack2
{ test: /.css$/, loaders: ['style-loader', 'css-loader', 'postcss-loader']}
實在不行,我把倉庫地址給你…… https://github.com/mqyqingfen...
回答2:難道就這樣沉了...
回答3:看著沒問題,可以試試把autoprefixer換成以前的版本,還有就是把node_modules刪了重新npm install
相關文章:
1. docker不顯示端口映射呢?2. docker綁定了nginx端口 外部訪問不到3. docker-machine添加一個已有的docker主機問題4. docker start -a dockername 老是卡住,什么情況?5. docker容器呢SSH為什么連不通呢?6. golang - 用IDE看docker源碼時的小問題7. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下8. 一個走錯路的23歲傻小子的提問9. mysql for update 如果事務一直沒有提交會不會這表數據一直鎖在那里10. mysql order by為什么沒有走索引排序?
