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. java - new + 類名,一定需要申明一個對象嗎?2. javascript - 前端開發 本地靜態文件頻繁修改,預覽時的緩存怎么解決?3. java - public <T> T findOne(T record) 這是什么意思4. android - 優酷的安卓及蘋果app還在使用flash技術嗎?5. docker不顯示端口映射呢?6. mysql數據庫每次查詢是一條線程嗎?7. python - linux怎么在每天的凌晨2點執行一次這個log.py文件8. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?9. 如何分別在Windows下用Winform項模板+C#,在MacOSX下用Cocos Application項目模板+Objective-C實現一個制作游戲的空的黑窗口?10. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發現
